/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.giant.services.parametrics;

import com.giant.entities.WClaimItem;
import com.giant.exceptions.OperacionInvalidaException;
import com.giant.services.IServicioPersistenciaLocal;
import com.giant.services.ServicioPersistencia;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author taticay
 */
@Stateless
public class ServiceClaimItem implements ServiceClaimItemLocal , Serializable{

    //-----------------------------------------------------------
    // Atributos
    //-----------------------------------------------------------
    
    /**
     * Interface con referencia al servicio de persistencia en el sistema
     */
    @EJB
    private IServicioPersistenciaLocal persistencia;
    
    //-----------------------------------------------------------
    // Constructor
    //-----------------------------------------------------------

    /**
     * Constructor de la clase sin argumentos
     */
    public ServiceClaimItem()
    {
        persistencia=new ServicioPersistencia();
    }

    //-----------------------------------------------------------
    // Métodos
    //-----------------------------------------------------------

    /**
     * Agrega un vendedor al sistema
     * @param vendedor Nuevo vendedor
     * @throws OperacionInvalidaException Excepción lanzada en caso de error
     */
    @Override
    public void addClaimItem(WClaimItem item) throws OperacionInvalidaException
    {
        try
        {
            persistencia.create(item);
        }
        catch (OperacionInvalidaException ex)
        {
            throw new OperacionInvalidaException(ex.getMessage());
        }
    }

    /**
     * Elimina un vendedor del sistema dado su ID
     * @param id Identificador único del vendedor
     * @throws OperacionInvalidaException Excepción lanzada en caso de error
     */
    @Override
    public void removeClaimItem(long id) throws OperacionInvalidaException
    {
        WClaimItem v=(WClaimItem) persistencia.findById(WClaimItem.class, id);
        try
        {
            persistencia.delete(v);
        } catch (OperacionInvalidaException ex)
        {
            throw new OperacionInvalidaException(ex.getMessage());
        }
    }

    /**
     * Devuelve todos los vendedores del sistema
     * @return vendedores Vendedores del sistema
     */
    @Override
    public List<WClaimItem> getClaimItem()
    {
        return persistencia.findAll(WClaimItem.class);
    }
    /**
     * Devuelve todos los vendedores del sistema
     * @return vendedores Vendedores del sistema
     */
    @Override
    public List<WClaimItem> getClaimItemNoGears()
    {
        Map<String, String> map = new HashMap<String, String>();
        map.put("isGear", "0");
        return persistencia.executeSql("WClaimItem.findByIsGear", map);
    }
}
